package com.example.mobiledatapackage.domain;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 数据库表 package 的实体类
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(title = "一个套餐数据")
public class Package {

    @NotBlank
    private String id;

    @NotBlank
    private String name;

    private String grade;

    @NotNull
    private Integer generation;

    @NotNull
    private Double baseCharge;

    @NotNull
    private Double hasFreeDomesticData;

    @NotNull
    private Double hasFreeOverseaData;

    @NotNull
    private Double domesticDataExtraCharge;

    @NotNull
    private Double overseaDataExtraCharge;

    @NotNull
    private Double hasFreeDomesticVoiceCall;

    @NotNull
    private Double hasFreeOverseaVoiceCall;

    @NotNull
    private Double domesticVoiceCallExtraCharge;

    @NotNull
    private Double overseaVoiceCallExtraCharge;

    @NotNull
    private Double hasFreeDomesticVoiceRecv;

    @NotNull
    private Double hasFreeOverseaVoiceRecv;

    @NotNull
    private Double domesticVoiceRecvExtraCharge;

    @NotNull
    private Double overseaVoiceRecvExtraCharge;

    @NotNull
    private Integer hasFreeDomesticMsg;

    @NotNull
    private Integer hasFreeOverseaMsg;

    @NotNull
    private Double domesticMsgExtraCharge;

    @NotNull
    private Double overseaMsgExtraCharge;

    private String bonus;

    private String validUntil;

    private Integer breachRegulations;

    private String effectTime;
}